var app = getApp();
//项目URL相同部分，减轻代码量，同时方便项目迁移
var host = app.globalData.appUrl;

/**
 * POST请求，
 * URL：接口
 * postData：参数，json类型
 * doSuccess：成功的回调函数
 * doFail：失败的回调函数
 */
function request(url, postData, doSuccess, doFail) {
  let timer = setInterval(() => {
    if (app.globalData.userId && app.globalData.userId !== null) {
      clearInterval(timer)
      postData.userId = app.globalData.userId
      wx.request({
        //项目的真正接口，通过字符串拼接方式实现
        url: host + url,
        header: {
          "content-type": "application/x-www-form-urlencoded;charset=UTF-8"
        },
        data: postData,
        method: 'POST',
        success: function (res) {
          wx.hideLoading()
          wx.stopPullDownRefresh()
          //参数值为res.data,直接将返回的数据传入
          if (res.data.code) {
            doFail(res.data.code)
            wx.showToast({
              title: res.data.msg,
              icon: 'none'
            })
          } else {
            doSuccess(res.data.data);
          }
        },
        fail: function () {
          doFail('error')
          wx.showToast({
            title: '网络错误，请重试',
            icon: 'none'
          })
        },
      })
    }
  }, 10)
}

function requestJson(url, postData, doSuccess) {
  let timer = setInterval(() => {
    if (app.globalData.userInfo) {
      clearInterval(timer)
      postData.userId = app.globalData.userId
      wx.request({
        //项目的真正接口，通过字符串拼接方式实现
        url: host + url,
        header: {
          "content-type": "application/json;charset=UTF-8"
        },
        data: postData,
        method: 'POST',
        success: function (res) {
          wx.hideLoading()
          wx.stopPullDownRefresh()
          //参数值为res.data,直接将返回的数据传入
          if (res.data.code) {
            wx.showToast({
              title: res.data.msg,
              icon: 'none'
            })
          } else {
            doSuccess(res.data.data);
          }
        },
        fail: function () {
          wx.showToast({
            title: '网络错误，请重试',
            icon: 'none'
          })
        },
      })
    }
  }, 10)
}

//GET请求，不需传参，直接URL调用，
function getData(url, doSuccess) {
  wx.request({
    url: host + url,
    header: {
      "content-type": "application/json;charset=UTF-8"
    },
    method: 'GET',
    success: function (res) {
      doSuccess(res.data);
    },
    fail: function () {
      wx.showToast({
        title: '网络错误，请重试',
        icon: 'none'
      })
    },
  })
}

/**
 * module.exports用来导出代码
 * js文件中通过var call = require("../util/request.js")  加载
 * 在引入引入文件的时候"  "里面的内容通过../../../这种类型，小程序的编译器会自动提示，因为你可能
 * 项目目录不止一级，不同的js文件对应的工具类的位置不一样
 */
module.exports.request = request;
module.exports.getData = getData;
module.exports.requestJson = requestJson;